<?php

class Skjb_Search_Xapian_MSet
{
    public $_cPtr=null;

    function __construct($other=null) {
        switch (func_num_args()) {
        case 0: $r=new_MSet(); break;
        default: $r=new_MSet($other);
        }
        $this->_cPtr=$r;
    }

    function fetch($begin_or_item=null,$end=null) {
        switch (func_num_args()) {
        case 0: MSet_fetch($this->_cPtr); break;
        case 1: MSet_fetch($this->_cPtr,$begin_or_item); break;
        default: MSet_fetch($this->_cPtr,$begin_or_item,$end);
        }
    }

    function convert_to_percent($wt_or_item) {
        return MSet_convert_to_percent($this->_cPtr,$wt_or_item);
    }

    function get_termfreq($tname) {
        return MSet_get_termfreq($this->_cPtr,$tname);
    }

    function get_termweight($tname) {
        return MSet_get_termweight($this->_cPtr,$tname);
    }

    function get_firstitem() {
        return MSet_get_firstitem($this->_cPtr);
    }

    function get_matches_lower_bound() {
        return MSet_get_matches_lower_bound($this->_cPtr);
    }

    function get_matches_estimated() {
        return MSet_get_matches_estimated($this->_cPtr);
    }

    function get_matches_upper_bound() {
        return MSet_get_matches_upper_bound($this->_cPtr);
    }

    function get_max_possible() {
        return MSet_get_max_possible($this->_cPtr);
    }

    function get_max_attained() {
        return MSet_get_max_attained($this->_cPtr);
    }

    function size() {
        return MSet_size($this->_cPtr);
    }

    function is_empty() {
        return MSet_is_empty($this->_cPtr);
    }

    function begin() {
        $r=MSet_begin($this->_cPtr);
        return is_resource($r) ? new Skjb_Search_Xapian_MSetIterator($r) : $r;
    }

    function end() {
        $r=MSet_end($this->_cPtr);
        return is_resource($r) ? new Skjb_Search_Xapian_MSetIterator($r) : $r;
    }

    function back() {
        $r=MSet_back($this->_cPtr);
        return is_resource($r) ? new Skjb_Search_Xapian_MSetIterator($r) : $r;
    }

    function get_hit($i) {
        $r=MSet_get_hit($this->_cPtr,$i);
        return is_resource($r) ? new Skjb_Search_Xapian_MSetIterator($r) : $r;
    }

    function get_document_percentage($i) {
        return MSet_get_document_percentage($this->_cPtr,$i);
    }

    function get_document($i) {
        $r=MSet_get_document($this->_cPtr,$i);
        return is_resource($r) ? new Skjb_Search_Xapian_Document($r) : $r;
    }

    function get_docid($i) {
        return MSet_get_docid($this->_cPtr,$i);
    }

    function get_document_id($i) {
        return MSet_get_document_id($this->_cPtr,$i);
    }

    function get_description() {
        return MSet_get_description($this->_cPtr);
    }
}